package br.com.gr.jcash.dao;

import br.com.gr.jcash.dmp.Categoria;
import br.com.gr.jcash.dmp.Usuario;
import br.com.gr.jcash.exception.JCashException;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
public class CategoriaDAO extends AbstractDAO<Categoria, Long> {

    @PersistenceContext(unitName = "jcash-PU")
    private EntityManager em;

    @Override
    protected EntityManager getEntityManager() {
        return em;
    }

    public CategoriaDAO() {
        super(Categoria.class);
    }

    public Categoria getCategoriaPorDescricao(Usuario usuario, String descricao) throws JCashException {
        return (Categoria) buscarUnico("Categoria.buscarPorDescricao", descricao, usuario);
    }

    @Override
    public List<Categoria> buscarTodos(Usuario usuario) throws JCashException {
        return buscarTodos("Categoria.buscarTodos",usuario);
    }

    @Override
    public List<Categoria> buscarPorFaixa(Usuario usuario, int[] faixa) throws JCashException {
        return buscarPorFaixa("Categoria.buscarTodos",faixa, usuario);
    }

    @Override
    public Long count(Usuario usuario) throws JCashException {
        return count("Categoria.count",usuario);
    }
}
